La consommation d'électricité est un sujet d'actualité. En effet, chaque français consomme quotidiennement de l'électricité. Cette consommation peut dépendre de plusieurs facteurs comme l'heure de la journée, le jour de la semaine, le mois ou plus généralement, elle peut varier selon la saison et la météo. Elle peut également varier selon la région dans laquelle on se situe. Nous nous proposons, dans ce projet, d'étudier les différents facteurs qui font varier cette consommation. Plus précisément, nous allons nous concentrer sur les différentes régions de France métropolitaine hors Corse.
Pour ceci, nous allons nous intéresser à quatre jeux de données suivants, dont la plupart trouvés sur le site d'OpenData Réseaux Energies Odré et un sur le site de l'INSEE :
• eco2mix-regional-cons-def.csv : les données de consommation d'électricité par heure par région de janvier 2013 à mai 2022
• eco2mix-regional-tr.csv : les données de consommation d'électricité par heure par région de juin 2022 à janvier 2023
• temperature-quotidienne-regionale.csv : les températures par région par jour depuis janvier 2016
• estim-pop-nreg-sexe-gca-1975-2023 : Estimation de population par région, sexe et grande classe d'âge des années 1975 à 2023
Dans une première partie, nous présenterons les données. Dans une deuxième partie, nous ferons l'analyse descriptive de ces données tandis que dans une dernière partie nous présenterons les modèles que nous avons utilisé pour faire des prédictions de consommation d'électricité.
Dans ce travail, nous considérons les douze régions de France métropolitaine présentes sur l'image, sans compter la Corse pour laquelle nous n'avons pas ces données.
Dans un premier temps, nous avons rassemblé les données de consommation d'électricité en mégawatt (MW) par région de janvier 2013 à janvier 2023. Nous avons concaténé les deux fichiers en ne gardant que les colonnes en commun. Nous avons également supprimé les données de l'année 2023 car nous en avions trop peu (seulement les premières dates de janvier qui sont passées). Nous avons supprimé les lignes où ils manquaient l'information de consommation d'électricité.
Nous avons également supprimé les colonnes pour lesquelles nous avions 50% ou plus de données manquantes. Il s'agit de colonnes comportant des informations sur le taux de couverture de différents types de production (TCO) et le taux de charge de différents types de production (TCH).
De plus, nous avons transformé la variable en format Date en trois variables, Année, Mois et Jour pour pouvoir plus facilement manipuler les données par la suite.
Finalement, nous obtenons le jeu de données suivant :
qui possède 2 206 226 lignes et 18 colonnes.
On peut voir qu'en plus de la consommation totale par région par heure, nous disposons également de la production selon les différentes filières composant le mix énergétique (nucléaire, thermique, hydraulique, éolien, bioénergies et solaire).
Nous avons également la colonne Pompage qui correspond à la consommation des pompes dans les Stations de Transfert d'Energie par Pompage (STEP).
On possède également un fichier sur les températures qui ressemble à ceci :
Nous avons la température minimum, maximum et moyenne pour une journée pour chaque région et ceci, pour des dates allant du 1 janvier 2016 au 31 décembre 2022.
Un autre jeu de données est celui sur la population en France et comporte pour chaque année la population par région par tranche d'âge, ainsi que le total puis également par sexe. Nous avons dû appliquer des traitements pour ne conserver que le total de la population par région pour chaque année.
Finalement, nous avons rassemblé ces différents fichiers pour n'en former qu'un. Nous avons fait une jointure sur les colonnes "Région" et "Date" entre les fichiers des consommations par région et des températures. Nous avons fait une seconde jointure en utilisant les colonnes "Région" et "Année" pour ajouter les informations sur les populations. On obtient le jeu de données suivant qui nous servira tout au long de ce projet :
Notre jeu de données comporte $22$ variables et plus d'un million ($1 577 962$) de lignes de données allant de l'année 2016 à 2022 incluse.
Dans un premier temps, nous pouvons nous intéresser à la consommation moyenne d'électricité par région sur les six dernières années.
Grâce à cette carte on constate que sur les six dernières années ce sont les régions d'Île-de-France et Auvergne-Rhône-Alpes qui ont les consommations moyennes d'électricité les plus élevées. Les régions situées sur la bande centrale sont celles qui consomment le moins, à savoir la Bretagne, le Pays de la Loire, le Centre-Val de Loire ainsi que Bourgogne Franche-Comté.
Cependant, nous savons que l'île de France est la région la plus peuplée de France, ce qui affecte forcément les consommations. En effet, sur la carte suivante, qui affiche la moyenne des populations par région entre 2016 et 2022, on constate effectivement que les consommations dépendent de la population (ce que nous pourrons vérifier plus tard à l'aide d'une matrice de corrélation) :
Pour pallier à cette représentation biaisée, nous avons considéré dans les cartes suivantes la consommation d'électricité par habitant par région, ce qui revient à diviser la consommation d'électricité d'une région par le nombre de personnes habitant cette région.
En faisant ceci, on observe des consommations réparties très différemment sur les régions. L'île de France ne fait plus partie des régions les plus consommatrices mais au contraire possède une consommation par habitant la plus faible de France. Ce sont les régions du Nord ainsi qu'Auvergnes-Rhônes-Alpes et la région PACA qui possèdent les consommations par habitant les plus élevées.
On peut se demander si on observe les mêmes niveaux de consommation par région pour une année spécifique.
En prenant l'année la plus basse de nos données, à savoir 2016, nous obtenons la carte suivante :
Si on regarde l'année 2016, on observe exactement les mêmes tendances de consommation par habitant par région que pour la carte précédente avec une consommation un peu plus faible en Bretagne et Occitanie.
En prenant l'année la plus récente, à savoir 2022, on obtient la carte suivante :
On fait encore la même observation pour l'année 2022. Par rapport à 2016, la consommation par habitant a augmenté en Bretagne et Occitanie (ce qui nous donne exactement la même carte que pour les moyennes sur les six années).
Après ces observations, on peut alors se demander si la consommation est la même pour une région d'année en année.
Ce graphique nous donne une idée plus précise de la consommation par habitant par région par année. On observe effectivement que chaque région consomme différemment. Par exemple, il n'y a pas de régions qui consomme moins que toutes les autres sur une année puis dont la consommation se met à exploser par rapport aux autres sur les années suivantes. Ici, les consommations restent toujours dans le même ordre de grandeur pour chaque région.
Nous observons de nouveau sur la figure ci-dessus que les mêmes cinq régions consomment le plus et l'Île-de-France qui consomme le moins.
On observe qu'entre 2019 et 2020 la consommation moyenne par habitant par région diminue pour augmenter de nouveau en 2021. La tendance s'inverse de nouveau pour 2022 avec une diminution de la consommation pour toutes les régions.
L'année 2020 est une année particulière dont la baisse de consommation peut s'expliquer par la baisse d'activité économique durant les confinements liés à la pandémie de Covid19.
Finalement, ces variations de consommation d'une année sur l'autre ont été constatées au niveau des régions. Nous pouvons donc observer le phénomène sur la France entière en affichant la consommation par année en France :
Nous observons quelques variations d'une année sur l'autre avec, comme nous l'avions constaté précédemment, une baisse de consommation entre 2019 et 2020 et entre 2021 et 2022.
En affichant seulement les médianes par année, on a une idée plus précise des différences qui existent entre année :
Nous observons une légère diminution de la consommation entre les années 2016 et 2019 (de $8.55 \times 10^{-4}$ à $8.31 \times 10^{-4}$ MW). L'année 2020 étant particulière, on observe une forte diminution. A l'année 2021, la consommation remonte et est légèrement plus faible qu'en 2019 pour connaître de nouveau un fort déclin à l'année 2022.
Nous pouvons ensuite nous demander quelles étaient les températures sur les années afin de voir si elles pourraient avoir un impact sur la consommation d'électricité.
Comme attendu, sur cette carte, nous constatons que les températures moyennes les plus faibles sont réalisées pour les régions au nord de la France et les plus élevées sont situées dans le sud.
La région la plus chaude en moyenne entre 2016 et 2022 est Provence-Alpes-Côte d'Azur suivie ensuite par l'Occitanie et la Nouvelle-Aquitaine.
Sur ce graphique on constate que les températures moyennes étaient en hausse entre 2016 et 2020 pour la plupart des régions. Cependant on remarque une baisse soudaine des températures moyennes sur l'ensemble de la France en 2021. Ceci pourrait en grande partie expliquer les consommations d'électricité que nous avions constatées en hausse cette année là.
Nous observons aussi que l'année 2022 a compté des températures particulièrement élevées comparées aux années précédentes, ce qui explique aussi la baisse de consommation constatée cette année là.
Tout d'abord, cela nous paraîtrait cohérent que la consommation d'électricité soit plus conséquente en hiver qu'aux autres saisons. C'est ce que nous nous proposons de vérifier en premier.
Pour chaque mois, on considère l'ensemble de nos données c'est-à-dire toutes les régions, tous les jours du mois, sur les années de 2016 à 2022. Le graphique ci-dessus est donc composé de boîtes à moustache pour chaque mois.
On constate sans grand étonnement une consommation plus importante pour les mois de décembre, janvier et février et moins importante pour les mois de mai, juin, juillet et août. En fait, la consommation va décroître de janvier à juin pour progressivement remonter de juin à décembre. Cela semble donc bien correspondre à la variation des saisons qui amènent avec elle une variation des températures.
On peut vérifier une variation des températures inversement proportionnelle à celle de la consommation électrique sur le graphique suivant :
En effet, la température médiane sur les six dernières années va de 5.53°C en janvier à 21.10°C en août pour redescendre jusqu'à 6.29°C en décembre.
A priori, il n'y a pas beaucoup de variations de consommation en fonction du jour du mois, ce qui nous semble cohérent.
Regardons les variations de consommation par heure pour une année, par exemple 2016.
La nuit la consommation est plus faible et va atteindre son minimum entre 3h et 4h du matin. Les consommations les plus importantes se font aux alentours de 12-14h puis de 18h30-20h15 et enfin aux alentours de 22h30-minuit.
Nous avons pu observer dans les parties précédentes les liens qui peuvent exister entre consommation d'électricité et population, région dans laquelle on vit, température, année, mois de l'année.
Nous allons à présent représenter les liens linéaires entre variables en affichant la matrice de corrélation.
On observe un groupe de variables fortement corrélées positivement entres elles avec les variables "TMin (°C)", "TMax (°C)" et "TMoy (°C)". Cela était attendu étant donné que si les températures moyennes augmentent alors les températures minimale et maximale augmentent aussi et vice versa.
Nous remarquons également que les variables "Population" et "Consommation (MW)" sont fortement corrélées positivement entre elles avec une corrélation de 0.8 environ. Cela signifie donc que plus le nombre d'habitant sera important plus la consommation d'électricité sera élevée.
On peut aussi oberver que les variables relatives aux températures sont corrélées négativement avec les variables "Consommation (MW)", "Nucléaire (MW)" et "Thermique (MW)" par exemple. Cela signifie que plus les températures sont élevées moins il y a de consommation d'électricité mais également moins il y a de production nucléaire et thermique.
La corrélation entre consommation et mois de l'année est seulement de -0.098. En effet, il n'y a pas de relation linéaire entre les deux puisque la consommation va d'abord diminuer puis augmenter de nouveau avec les mois. De la même manière, la corrélation entre heure et consommation est seulement de 0.092.
Dans cette partie, nous souhaitons prédire les consommations d'électricité pour le dernier trimestre de 2022, soit pour des dates entre le 1er octobre 2022 et le 31 décembre 2022.
Nous avons commencé par remplacer les données manquantes des variables "Bioénergies (MW)", "Hydraulique (MW)", "Solaire (MW)", "Nucléaire (MW)", "Ech. physiques (MW)" et "Thermique (MW)" par la médiane de ces variables. Puis nous avons centré et réduit les données. Nous avons utilisé le codage disjonctif complet sur les variables "Région" et "Heure".
Ensuite, on découpe notre jeu de données en deux sous-jeux de données d'apprentissage et test. Le jeu de données test contient les données comprises entre le 01/10/2022 et le 31/12/2022, tandis que le jeu de données d'apprentissage contient toutes les autres données dont nous disposons (donc de janvier 2016 à septembre 2022).
On commence par appliquer la fonction RandomForestRegressor() de la librairie scikit learn sur l'ensemble de nos données d'apprentissage et en gardant les paramètres par défaut.
Afin d'évaluer la performance du modèle nous calculons la métrique correspondant à la racine carrée de l'erreur quadratique moyenne, c'est-à-dire la RMSE. Elle est donnée par la formule suivante. $$ \text{RMSE} = \sqrt{ \mathbb{E} \left( \left( \hat{y} - y \right)^2 \right) } = \sqrt{ \frac{1}{n} \sum_{i=1}^n \left( \hat{y_i} - y_i \right)^2} $$
Nous trouvons ici, pour ce premier modèle, une RMSE égale à 528.9571. Nous pouvons interpréter cette valeur de la manière suivante, en moyenne avec ce modèle les prédictions ont 528 MW d'écart avec les valeurs réelles de consommation.
Cependant, cette mesure ne prend pas en compte la direction de l'erreur, c'est-à-dire qu'elle ne distingue pas les sous-estimations des sur-estimations. Il est donc également intéressant de vérifier l'histogramme des résidus pour avoir une idée de la répartition des erreurs. Nous obtenons alors le graphique suivant.
L'histogramme des erreurs de prédictions ci-dessus montre qu'elles ne sont pas totalement bien réparties de manière homogène autour de zéro. En effet, ce graphique montre que le modèle se trompe plus souvent dans un sens que dans l'autre, c'est-à-dire que nos prédictions sont plus souvent supérieures aux valeurs de consommations réelles.
Cherchons maintenant à déterminer les variables les plus importantes dans cette méthode. Celles-ci sont données dans le tableau ci-dessous.
On constate donc qu'il y a 8 variables classées "importantes" dans notre jeu de données pour ce modèle. Parmi elles on retrouve la variable associée à la population, suivie de la température maximale, les échanges physiques, les températures moyennes et des variables relatives à la production d’électricité.
Nous allons donc refaire la même forêt aléatoire que précédemment mais sur un jeu de donné réduit, ne contenant que ces 8 variables, et, par soucis de temps, nous allons également réduire la taille de nos données d'entraînement à 884067 lignes.
Nous évaluons de nouveau la performance de ce modèle en calculant la RMSE. Celle ci donnne un résultat de 516.1658, qui est plus légèrement faible que le précédent.
De nouveau nous représentons l'histogramme des résidus afin de voir si les sur-estimations sont toujours aussi importantes.
On constate aussi que l'histogramme des résidus montre que ce modèle se trompe moins souvent que le précédent pour des prédictions supérieures aux vraies valeurs.
Il semblerait donc qu'il soit plus efficace, pour cette forêt aléatoire avec les paramètres par défaut, de n'utiliser que les variables les plus importantes.
Nous allons maintenant utiliser la technique de recherche de grille pour optimiser les hyperparamètres de notre forêt aléatoire. En effet, nous allons utiliser l’objet "GridSearchCV" pour parcourir toutes les combinaisons possibles des valeurs des paramètres max_depth, min_samples_leaf et n_estimator, qui déterminent respectivement la profondeur maximale des arbres de décision, le nombre minimum d’échantillons nécessaires pour diviser un nœud et le nombre le nombre d’arbre dans la forêt aléatoire.
Par soucis de temps, nous allons effectuer cela sur le jeu de données réduit c'est-à-dire ne contenant que les variables importantes pour 884067 lignes.
Nous obtenons alors une RMSE de 515.602 environ et l'histogramme des résidus suivant.
On constate ici des résultats fortement similaire à ceux présenté juste avant.
Résumons les résultats obtenus dans le tableau suivant.
| Jeu de données | Paramètres | RMSE |
|---|---|---|
| complet | par défaut | 528.957 |
| réduit | par défaut | 516.165 |
| réduit | CV | 515.602 |
Finalement, il semblerait que pour cette méthode, il soit préférable d'utiliser le jeu de données réduit. De plus, il semble que la calibration des paramètres par validatioin croisée n'ait pas apportée de réelle amélioration à notre résultat.
Nous avons ensuite appliqué des modèles de réseaux de neurones à nos données centrées-réduites. Nous avons également réduit la taille de l'ensemble d'apprentissage qui comptait dans les 1.4 millions de lignes à $736722$ lignes, afin d'éviter des problèmes d'allocation mémoire et des temps d'exécution très conséquents.
Le modèle présenté possède cinq couches denses de paramètres $(128 \times 8, 128\times4 , 128\times2, 128, 64)$ avec une couche DropOut entre les deux premières couches denses. Nous avons paramétré 20 epochs et une taille de batch de 70.
Nous nous sommes posées la question de comment traiter la variable Mois. En effet, les mois vont des nombres 1 à 12. Or si on les traite comme des nombres, cela sous-entend que décembre (12) est éloigné de janvier (1). Ceci est faux car décembre est aussi proche que février (2) de janvier.
Une première idée est alors de traiter cette variable par codage disjonctif complet, à l'aide la fonction getDummies de la librairie pandas. Cela nous permet alors d'obtenir 12 nouvelles colonnes, chacune représentant un mois, avec des valeurs binaires ($\{0,1\})$.
La RMSE calculée sur l'ensemble test à la dernière époch du réseau est de 0.2185. Cependant, elle est calculée sur les données centrées-réduites. En recalculant la RMSE sur les données non centrées-réduites, nous obtenons une RMSE sur l'ensemble test de 461.76.
On peut observer l'histogramme des résidus ci-dessous :
La distribution possède l'allure d'une gaussienne mais n'est pas centrée en zéro. On a donc beaucoup de prédictions qui sont supérieures aux valeurs attendues.
De plus, un des inconvénients de ce traitement de la variable "Mois" est que nous n'avons plus cette notion de distance entre les mois étant donné que l'information de chaque mois est contenue dans des colonnes différentes.
Nous avons donc quand même voulu tester le modèle avec la variable "Mois" sans appliquer de codage disjonctif complet. Nous nous sommes apperçues que cela nous donne de meilleurs résultats de RMSE. En effet, la RMSE sur les données non centrées-réduites vaut 368.75. Nous pouvons interpréter cette valeur et dire qu'en moyenne avec ce modèle les prédictions ont 368.75 MW d'écart avec les valeurs réelles de consommation. Nous obtenons l'histogramme des résidus suivant :
La même constatation qu'avant peut-être faite avec plus de prédictions supérieures aux vraies consommations.
Finalement, on constate l'asymétrie dans les histogrammes des résidus pour l'ensemble des modèles étudiés. Cela pourrait venir d'une asymétrie dans la distribution de la variable de consommation.
Le coefficient d'asymétrie (skewness en anglais) de la variable de consommation (MW) est de 1.00278.
En guise d'ouverture, nous pourrions chercher à prédire la consommation d'électricité par habitant par région.
En effet, la répartition des valeurs de cette variable est meilleure avec un coefficient d'asymétrie est plus faible. Il est de 0.4195.
Les analyses descriptives de la première partie nous ont permises de mieux comprendre les consommations d’électricité en France métropolitaine (hors Corse). Ainsi, nous avons constaté qu’elles étaient liées notamment au nombre d’habitants et aux températures. Ainsi, nous avons constaté des disparités entre les régions de France. Il aurait été intéressant de se pencher sur les différents secteurs d’activité consommant de l’électricité et de s’intéresser également aux régions les plus industrielles.
Dans la seconde partie de ce travail, nous avons effectué une régression afin de prédire les consommations d’électricité pour le dernier trimestre de 2022. Le meilleur modèle que nous ayons testé est un réseau de neurones. Cependant, on constate que pour chaque modèle testé les prédictions étaient plus souvent supérieures aux valeurs de consommations réelles. Il est possible que ces sur-estimations soient liées à une baisse de consommation que nous avons constatée à l'année 2022. On peut aussi expliquer ce phénomène par le fait que la variable d’intérêt « Consommation (MW) » ne possède pas une distribution symétrique.
Pour améliorer nos modèles, une possibilité serait de rendre cette distribution plus symétrique, en considérant par exemple les consommations par habitant par région à la place. Il aurait aussi été intéressant de considérer davantage de variables explicatives exogènes comme, par exemple, des variables liées aux conditions météorologiques telles que l'humidité et la pluie ou encore des variables liées aux différents secteurs d'activité ou aux conditions économiques comme le taux de chômage ou les prix de l'électricité.
Enfin, il aurait également été plus judicieux de retirer les données relatives à l'année 2020 aux vues du caractère particuler de cette dernière en raison de la pandémie.